package com.example.enums;

/**
 * 图书状态枚举
 * 定义图书状态常量及其描述
 */
public enum BookStatus {
    DELETED(0, "⽆效"),      // 已删除状态
    NORMAL(1, "可借阅"),     // 正常可借阅状态
    FORBIDDEN(2, "不可借阅"); // 不可借阅状态

    private Integer code;    // 状态码
    private String name;     // 状态名称

    /**
     * 枚举构造函数
     * @param code 状态码
     * @param name 状态名称
     */
    BookStatus(int code, String name) {
        this.code = code;
        this.name = name;
    }

    /**
     * 通过状态码获取对应的枚举实例
     * @param code 状态码
     * @return 对应的枚举实例
     */
    public static BookStatus getNameByCode(Integer code) {
        switch (code) {
            case 0:
                return DELETED;
            case 1:
                return NORMAL;
            case 2:
                return FORBIDDEN;
        }
        return null;
    }

    // Getter和Setter方法
    public Integer getCode() {
        return code;
    }

    public void setCode(Integer code) {
        this.code = code;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}